
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.text.Text;

/*
 * To change this template, choose Tools | Templates and open the template in
 * the editor.
 */
/**
 *
 * @author enrico
 */
public class FindLibriView extends BorderPane {

  private FindLibriController controller;
  ListaLibriView risultati;
  TextField titoloField = new TextField();
  TextField autoreField = new TextField();
  TextField editoreField = new TextField();
  CheckBox sezioneI = new CheckBox("I");
  CheckBox sezioneII = new CheckBox("II");
  CheckBox sezioneIII = new CheckBox("III");
  CheckBox sezioneIV = new CheckBox("IV");
  CheckBox sezioneV = new CheckBox("V");
  CheckBox sezioneVI = new CheckBox("VI");
  CheckBox sezioneVII = new CheckBox("VII");
  CheckBox sezioneVIII = new CheckBox("VIII");
  CheckBox sottCheck = new CheckBox("cerca anche nei sottotitoli");

  public FindLibriView(FindLibriController cont) {

    controller = cont;
    try {
      risultati = new ListaLibriView("");
    } catch (Exception ex) {
      Logger.getLogger(FindLibriView.class.getName()).log(Level.SEVERE, null, ex);
    }

    // Borderpane   ------- griglia --- titolo\autore\editore
    //              \------ tableview

    GridPane griglia = new GridPane();
    Text titolo = new Text("Titolo");
    Text autore = new Text("Autore");
    Text editore = new Text("Editore");
    Text sezioni = new Text("Sezioni");

    sezioneI.setSelected(true);
    sezioneII.setSelected(true);
    sezioneIII.setSelected(true);
    sezioneIV.setSelected(true);
    sezioneV.setSelected(true);
    sezioneVI.setSelected(true);
    sezioneVII.setSelected(true);
    sezioneVIII.setSelected(true);
    
    HBox sezioniBox = new HBox();
    sezioniBox.getChildren().addAll(sezioneI, sezioneII, sezioneIII, sezioneIV, sezioneV, sezioneVI,sezioneVII,sezioneVIII);
    sezioniBox.setSpacing(10);

    final Button cerca = new Button("Cerca");
    cerca.setId("ipad-dark-grey");
    cerca.setOnAction(new EventHandler<ActionEvent>() {
      @Override
      public void handle(ActionEvent e) {
        try {
          // clicked
          controller.search(titoloField.getText(),autoreField.getText(),editoreField.getText(),sezioneI.isSelected(),sezioneII.isSelected(),sezioneIII.isSelected(),sezioneIV.isSelected(),sottCheck.isSelected());
        } catch (Exception ex) {
          Logger.getLogger(FindLibriView.class.getName()).log(Level.SEVERE, null, ex);
        }
      }
    });

    griglia.add(titolo, 0, 0);
    griglia.add(titoloField, 1, 0);
    griglia.add(sottCheck, 2, 0);
    griglia.add(autore, 0, 1);
    griglia.add(autoreField, 1, 1);
    griglia.add(editore, 0, 2);
    griglia.add(editoreField, 1, 2);
    griglia.add(sezioni, 0, 3);
    griglia.add(sezioniBox, 1, 3);
    griglia.add(cerca, 2, 1, 1, 3);

    griglia.setVgap(5);
    griglia.setHgap(15);
    griglia.setId("griglia");

    this.setTop(griglia);
    this.setCenter(risultati);
  }

  public void setRisultati(String SQL) throws Exception {
    final ListaLibriView nuova = new ListaLibriView(SQL);
    nuova.setOnMouseClicked(new EventHandler<MouseEvent>() {

      @Override
      public void handle(MouseEvent arg0) {
        if (arg0.getClickCount()==2) {
          // doppio click
          LibroModel lm = nuova.getSelectionModel().getSelectedItem();
          controller.goToBook(lm);
        }
      }
      
    });
    this.setCenter(nuova);
    
  }
}
